在看完這第二章內容:JavaScript使用的語彙結構(撰寫程式的基本規則),紀錄一些問題的小筆記。
JavaScript會忽略的符號有哪些?
問題一:識別字(identifier) & 保留字 (reserved words)是什麼?
(一)識別字 (identifier):
識別字是用來命名常數(constants)、變數(variable)、屬性(property)、函式(function)的。
let firstName = "John"; // 有效的識別字,使用小駝峰命名法
let last_name = "Doe"; // 有效的識別字,使用底線分隔命名法
let $count = 10; // 有效的識別字,以美元符號開頭
let _privateVar = true; // 有效的識別字,以下底線為開頭
let first name = "John"; // 不是有效的識別字,因為它包含空格
let 123abc = "test"; //不是有效的識別字,因為它以數字開頭
(二)保留字 (reserved words):
保留字不能用來作為常數(constants)、變數(variable)、函式(function)或類別名稱。
有哪些字是保留字,必須要在命名時避開呢?
1.保留字列表:
as
async
await
break
case
catch
class
const
continue
debugger
default
delete
do
else
export
extends
false
finally
for
from
function
get
If
import
in
instanceof
let
new
null
of
return
set
static
super
switch
target
this
throw
true
try
typeof
var
void
while
with
yield
2.未來JavaScript版本的保留字:
enum
implement
interface
package
private
protected
public
3.特定環境下不允許作為識別字,寫程式時最好避免:
arguments
eval
問題三:JavaScript如何看待分隔符號?
在JavaScript中,分號(;)的作用是用來分隔每一個敘述句。
(一)概念一、如果句子在不同行,可以省略兩個敘述句之間的分號。
例如:
a=3;
b=4;
可以寫成下列程式碼 (可以省略第一個分號):
a=3
b=4;
(二)概念二、JavaScript會在沒有加上分號的時候,繼續往下解讀敘述句,如果往下解讀發現無法繼續解讀時,才會在上一句的結尾視為「加上分號」。
原本沒加分號的程式碼:
let a
a
=
3
console.log(a)
上面的程式碼完全沒加分號,因為JavaScript看不懂 let a a ,所以就會在第一個a之後直接加上分號,變成let a;
雖然後續JavaScript可以直接在第二個 a 加上分號 a ;
但因為再往下繼續解讀還是看得懂,所以JavaScript將後面程式碼解讀成 a = 3;
JavaScript解讀後的程式碼:
let a;
a = 3;
console.log(a);
(三)概念三、防衛性分號
敘述句前面加上分號,可以避免上一個敘述句因為分號不小心被移除而造成的錯誤。
let x = 0
;[x, x+1, x+2].forEach(console.log) // 防衛性分號
(四)概念四、遇到return、break、continue 要特別注意
遇到return、break、continue 需特別注意,如果後面接續的字一旦換行,JavaScript會直接在return、break或continue 後加上分號。
原程式碼:
return
ture;
JavaScript解讀成:
return;
true;